package com.wmh.baseservice.skd.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wmh.baseservice.skd.mapper.SkdGoodsSpecMapper;
import com.wmh.baseservice.skd.pojo.SkdGoodsSpec;
import com.wmh.baseservice.skd.service.SkdGoodsSpecService;
import com.wmh.baseservice.common.mybatisplus.methods.CommonServiceImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author wmh generator
 * @since 2022-03-09
 */
@Service
public class SkdGoodsSpecServiceImpl extends CommonServiceImpl<SkdGoodsSpecMapper, SkdGoodsSpec> implements SkdGoodsSpecService {

    @Resource
    private SkdGoodsSpecMapper skdGoodsSpecMapper;

    /**
     * 根据商品id获取对应商品规格列表
     * @param id 商品id
     * @return 返回对应商品规格列表
     */
    @Override
    public List<SkdGoodsSpec> getGoodsSpecListByGoodsId(Long id) {
        return skdGoodsSpecMapper.selectList(new QueryWrapper<SkdGoodsSpec>().eq("goods_id", id));
    }

    /**
     * 根据商品id获取不同商品规格的价格列表
     * @param goodsId 商品id
     * @return 返回不同商品规格的价格列表
     */
    @Override
    public List<SkdGoodsSpec> getPriceRangeByGoodsId(Long goodsId) {
        return skdGoodsSpecMapper.getPriceRangeByGoodsId(goodsId);
    }

    /**
     * 根据商品规格id获取商品规格描述
     * @param goodsSpecId 商品规格id
     * @return 返回商品规格描述
     */
    @Override
    public String getDescById(Long goodsSpecId) {
        return skdGoodsSpecMapper.getDescById(goodsSpecId);
    }

    /**
     * 根据商品规格id获取商品规格图像地址
     * @param goodsSpecId 商品规格id
     * @return 返回商品规格图像地址
     */
    @Override
    public String getGoodsImageUrlById(Long goodsSpecId) {
        return skdGoodsSpecMapper.getGoodsImageUrlById(goodsSpecId);
    }

    /**
     * 根据商品规格id获取商品规格价格
     * @param goodsSpecId 商品规格id
     * @return 返回商品规格价格
     */
    @Override
    public BigDecimal getGoodsPriceById(Long goodsSpecId) {
        return skdGoodsSpecMapper.getGoodsPriceById(goodsSpecId);
    }

    /**
     * 根据商品id删除商品规格
     * @param goodsId 商品规格
     * @return 返回是否删除成功
     */
    @Override
    public boolean deleteByGoodsId(Long goodsId) {
        return skdGoodsSpecMapper.deleteByGoodsId(goodsId);
    }
}
